/*
 * autor: joaquin guzman jimenez
 * fecha: 17 de marzo del 2012
 * comentario: clase para almacenar los insumos que se usarán en una
 * oferta económica.
 */
package jgj_tm.insumos;

//importaciones
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import jgj_tm.basicos.basico;

public class listInsumos{
    //atributos
    private ArrayList<insumo> Insumos;
    private File fileInsumos;
    //constructor
    public listInsumos(String path){
        Insumos=new ArrayList<insumo>();
        if(path.isEmpty() || path==null) path="";
        fileInsumos=new File(path+"insumos.dat");
    }//constructor
    //iterador para manejo de los elementos del arreglo
    public Iterator iterador(){
        return Insumos.iterator();
    }//Iterador
    //borrar un insumo de la lista
    public insumo borrar(int index){
        return Insumos.remove(index);
    }//borrar
    public boolean borrar( insumo ins ){
        return Insumos.remove(ins);
    }//borrar
    //insertar un insumo en la lista
    public boolean insertar(int index, insumo ins){
        boolean valRet=false;
        if(existe(ins)==-1){
            Insumos.add(index, ins);
            valRet=true;
        }//if
        return valRet;
    }//insertar
    //agragar un insumo a la lista
    public boolean agragar(insumo ins){
        boolean valRet=false;
        if(existe(ins)==-1) valRet=Insumos.add(ins);
        return valRet;
    }//agragar
    //editar un insumo de la lista
    public boolean cambiar(int index, insumo ins){
        boolean valRet=false;
        if(existe(ins)!=-1){
            Insumos.set(index, ins);
            valRet=true;
        }//if
        return valRet;
    }//editar
    //vaciar las lista de insumos
    public void vaciar(){
        Insumos.clear();
    }//vaciar
    //copiar la lista de insumos
    public ArrayList<insumo> copiar(){
        return (ArrayList<insumo>)Insumos.clone();
    }//copiar
    //localizar un insumo en la lista, devuel -1 si no existe
    public int existe(insumo ins){
        int valRet=-1;
        if(Insumos.contains(ins)){
            valRet=Insumos.indexOf(ins);
        }//if
        return valRet;
    }//buscar
    //localiza el insumo con base en el idinsumos pasado en el parámetro
    public boolean existe(String idinsumo){
        boolean valRet=false;
        Iterator iterador=Insumos.iterator();
        insumo insu;
        while(iterador.hasNext()){
            insu=(insumo)iterador.next();
            if(insu.idInsumo.equals(idinsumo)){
                valRet=true;
                break;
            }//if
        }//while
        return valRet;
    }//buscar
    //leer un insumos de la lista
    public insumo leer(int index){
        return Insumos.get(index);
    }//leer
    //grabar en disco la lista de insumos
    public void grabar() throws IOException{
        FileOutputStream fos=new FileOutputStream(fileInsumos);
        ObjectOutputStream oos=new ObjectOutputStream(fos);
        oos.writeObject(Insumos);
        oos.close();
    }//grabar
    //cargar el archivo de insumos en memoria
    public void cargar() throws IOException, ClassNotFoundException {
        if(fileInsumos.exists()){
            FileInputStream fis=new FileInputStream(fileInsumos);
            ObjectInputStream ois=new ObjectInputStream(fis);
            Insumos=(ArrayList<insumo>)ois.readObject();
        }//if
    }//cargar
}//listInsumos
